package com.rocky.study.generic;

public class GenericDemo3 {
    public static void main(String[] args) {
        DynamicArray<Number> numberDynamicArray = new DynamicArray<>();
        DynamicArray<Integer> integerDynamicArray = new DynamicArray<>();
        integerDynamicArray.add(100);
        integerDynamicArray.add(34);
        // 会提示编译报错
//        numberDynamicArray.addAllofRange(integerDynamicArray);
        // 如果上述代码适用,DynamicArray<Integer> 就会出现Double类型的值,而这显然破坏了Java泛型
        // 关于类型安全的保证
        numberDynamicArray.add(new Double(12.34));
        // Integer 是Number的子类,但DynamicArray<Integer>并不是DynamicArray<Number>的子类
        // DynamicArray<Integer> 的对象也不能赋值给DynamicArray<Number>的
        numberDynamicArray.addAll(integerDynamicArray);
    }
}
